using CodeSaude.Domain.Entities;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class transcricao_medicamentoMap : EntityTypeConfiguration<transcricao_medicamento>
    {
        public transcricao_medicamentoMap()
        {
            // Primary Key
            this.HasKey(t => t.identificador);

            // Properties
            this.Property(t => t.nome_medicamento)
                .HasMaxLength(255);

            this.Property(t => t.dose_medicamento_view)
                .HasMaxLength(20);

            this.Property(t => t.unidade_medicamento)
                .HasMaxLength(10);

            this.Property(t => t.admnistracao_medicamento)
                .HasMaxLength(60);

            this.Property(t => t.diluente_medicamento)
                .HasMaxLength(255);

            this.Property(t => t.intervalo_medicamento)
                .HasMaxLength(60);

            this.Property(t => t.opcao_medicamento)
                .HasMaxLength(60);

            this.Property(t => t.observacao_medicamento)
                .HasMaxLength(3000);

            // Table & Column Mappings
            this.ToTable("transcricao_medicamento");
            this.Property(t => t.identificador).HasColumnName("identificador");
            this.Property(t => t.id_transcricao).HasColumnName("id_transcricao");
            this.Property(t => t.id_medicamento).HasColumnName("id_medicamento");
            this.Property(t => t.nome_medicamento).HasColumnName("nome_medicamento");
            this.Property(t => t.dose_medicamento).HasColumnName("dose_medicamento");
            this.Property(t => t.dose_medicamento_view).HasColumnName("dose_medicamento_view");
            this.Property(t => t.unidade_medicamento).HasColumnName("unidade_medicamento");
            this.Property(t => t.admnistracao_medicamento).HasColumnName("admnistracao_medicamento");
            this.Property(t => t.diluente_medicamento).HasColumnName("diluente_medicamento");
            this.Property(t => t.intervalo_medicamento).HasColumnName("intervalo_medicamento");
            this.Property(t => t.opcao_medicamento).HasColumnName("opcao_medicamento");
            this.Property(t => t.observacao_medicamento).HasColumnName("observacao_medicamento");
            this.Property(t => t.id_situacao).HasColumnName("id_situacao");
            this.Property(t => t.data_criacao).HasColumnName("data_criacao");
            this.Property(t => t.Usuario_criacao).HasColumnName("Usuario_criacao");
            this.Property(t => t.data_alteracao).HasColumnName("data_alteracao");
            this.Property(t => t.Usuario_alteracao).HasColumnName("Usuario_alteracao");
            this.Property(t => t.quantidade_medicamento).HasColumnName("quantidade_medicamento");
        }
    }
}
